package com.shujia

object Demo15Fun5 {
  def main(args: Array[String]): Unit = {
    /**
      * 匿名函数
      *
      */

    def fun1(f: Int => Int): Unit = {

      val i: Int = f(100)
      println(i)

    }


    //以函数作为参数调用方式

    def fun2(i: Int): Int = {
      i * i
    }

    fun1(fun2)


    //匿名函数

    //(i: Int) => i * i  匿名函数
    var f = (i: Int) => i * i
    fun1(f)

    fun1((i: Int) => i * i)

    //参数类型可以省略
    fun1(i => i * i)


    //当参数制备使用一次的时候可以使用占位符替代
    fun1(i => i * 2)
    fun1(_ * 2)


  }
}
